
cmake_minimum_required(VERSION 3.18)
project(ISPCCustomHeaderSuffix CXX ISPC)

if(CMAKE_SIZEOF_VOID_P EQUAL 4)
  set(CMAKE_ISPC_FLAGS "--arch=x86")
endif()

if("${CMAKE_SYSTEM_NAME};${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "Darwin;arm64")
  set(CMAKE_ISPC_INSTRUCTION_SETS "neon-i32x4")
else()
  set(CMAKE_ISPC_INSTRUCTION_SETS "sse2-i32x4;sse4-i8x16")
endif()

set(CMAKE_ISPC_HEADER_SUFFIX ".ispc.h")

add_library(ispc_suffix_1 OBJECT simple.ispc)
add_library(ispc_suffix_2 OBJECT extra.ispc)

set_target_properties(ispc_suffix_2 PROPERTIES ISPC_HEADER_SUFFIX "___ispc.h")

set_target_properties(ispc_suffix_1 ispc_suffix_2
  PROPERTIES POSITION_INDEPENDENT_CODE ON
)

add_executable(ISPCCustomHeaderSuffix main.cxx extra.cxx)
target_link_libraries(ISPCCustomHeaderSuffix PRIVATE ispc_suffix_1 ispc_suffix_2)
